// //
// // Created on 2024/11/27.
// //
// // Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// // please include "napi/native_api.h".
//
// #ifndef OPENGLDEMO_EGLCOMMON_H
// #define OPENGLDEMO_EGLCOMMON_H
// #include <EGL/egl.h>
// #include <EGL/eglext.h>
// #include <EGL/eglplatform.h>
// #include <GLES3/gl3.h>
// #include <napi/native_api.h>
//
// /**
//  * 顶点着色器
//  */
// const char VERTEX_SHADER[] = "#version 320 es\n"                              // openGL版本
//                              "layout(location = 0) in vec3 a_position;\n"     // 输入的RGB的格式
//                              "layout(location = 1) in vec2 a_textCoord;   \n" // 输入的顶点纹理坐标
//                              "uniform mat4 rotation_model;\n"                 // 变换矩阵
//                              "uniform mat4 mirror_model;\n"                   // 变换矩阵
//                              "out vec2 v_textCoord;\n"                        // 输出到片段着色器的纹理坐标
//                              "void main(){\n"                                 // main函数
//                              "gl_Position = mirror_model * rotation_model * vec4(a_position, 1.0);\n" // 设置RGBA数据
//                              "v_textCoord = vec2(a_textCoord.x, 1.0 - a_textCoord.y);\n" // 传递纹理坐标到片段着色器
//                              "}\n";
//
// /**
//  * 片段着色器
//  */
// const char FRAGMENT_SHADER[] = "#version 320 es\n"                // openGL版本
//                                "precision mediump float;\n"       // 声明浮点数精度
//                                "in vec2 v_textCoord;\n"           // 是一个来自顶点着色器的输出变量
//                                "uniform sampler2D rgb_texture;\n" // sampler2D类型的RGB格式纹理
//                                "out vec4 FragColor;\n"            // 输出片段颜色
//                                "void main(){\n"
//                                "FragColor = texture(rgb_texture,v_textCoord);\n"
//                                "}\n";
//
// /**
//  * Background color #f4f4f4.
//  */
// const GLfloat BACKGROUND_COLOR[] = {255.0f / 255, 255.0f / 255, 255.0f / 255, 1.0f};
//
// /**
//  * Draw color #7E8FFB.
//  */
// const GLfloat DRAW_COLOR[] = {126.0f / 255, 143.0f / 255, 251.0f / 255, 1.0f};
// /**
//  * Background area.
//  */
// const GLfloat BACKGROUND_RECTANGLE_VERTICES[] = {-1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f};
//
// /**
//  * Triangle fan size.
//  */
// const GLsizei TRIANGLE_FAN_SIZE = 4;
// /**
//  *
//  */
// const EGLint ATTRIB_LIST[] = {
//     // Key,value.
//     EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT, // 使用 OpenGL ES 3.0
//     EGL_SURFACE_TYPE, EGL_WINDOW_BIT,        // 窗口渲染
//     EGL_RED_SIZE, 8,                         // 红色分量 8 位
//     EGL_GREEN_SIZE, 8,                       // 绿色分量 8 位
//     EGL_BLUE_SIZE, 8,                        // 蓝色分量 8 位
//     EGL_ALPHA_SIZE, 8,                       // 透明度分量 8 位
//     EGL_DEPTH_SIZE, 24,                      // 深度缓冲 24 位
//     EGL_STENCIL_SIZE, 8,                     // 模板缓冲 8 位
//     // End.
//     EGL_NONE // 结束标志
// };
//
// // 顶点数据：位置和纹理坐标
// const GLfloat vertices[] = {
//     // 位置                // 纹理坐标
//     1.0f,  -1.0f, 0.0f, // 右下角的顶点
//     -1.0f, -1.0f, 0.0f, // 左下角的顶点
//     1.0f,  1.0f,  0.0f, // 右上角的顶点
//     -1.0f, 1.0f,  0.0f  // 左上角的顶点
// };
//
// // 纹理坐标数据
// const GLfloat fragment[] = {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f};
//
// const GLfloat defaultMirror[16] = {
//     1.0f, 0.0f, 0.0f, 0.0f, // 第一行
//     0.0f, 1.0f, 0.0f, 0.0f, // 第二行
//     0.0f, 0.0f, 1.0f, 0.0f, // 第三行
//     0.0f, 0.0f, 0.0f, 1.0f  // 第四行
// };
// const GLfloat mirror[16] = {
//     -1.0f, 0.0f, 0.0f, 0.0f, // 第一行
//     0.0f,  1.0f, 0.0f, 0.0f, // 第二行
//     0.0f,  0.0f, 1.0f, 0.0f, // 第三行
//     0.0f,  0.0f, 0.0f, 1.0f  // 第四行
// };
// /**
//  * Context attributes.
//  */
// const EGLint CONTEXT_ATTRIBS[] = {EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE};
//
// #endif // OPENGLDEMO_EGLCOMMON_H
